Computer devices store data to various types of storage media and devices. Some of these storage media and devices are nonvolatile—i.e., the device persistently stores data when power to a computer system is turned off. An example of a nonvolatile storage device is NAND memory.
Data of non-volatile storage devices may be represented as pages, and pages may be further included in blocks. An operating system (OS) executed via a processor may request or perform actions, such as reading and writing, to particular pages of the storage medium. These pages may be associated with a “physical address” on the storage medium and with a “logical address” within the OS.
A logical address represents an address to which the operating system, disk cache or other logical component may use to access a data page. When a single “write” occurs, there are actually multiple writes that must occur—a write to the physical address and writes associated with updates to the respective logical addresses. The total number of writes that occur during a single “write” operation is referred to as “write amplification.”
Prior art optimizations of write amplification—i.e., reducing the actual number of writes for a write transaction, require large amounts of cache RAM, while memory management solutions that utilize small amounts cache RAM typically achieve poor write amplification.
The descriptions of certain details and implementations follow, including a description of the figures, which may depict some or all of the embodiments described below, as well as discussing other potential embodiments or implementations of the inventive concepts presented herein. An overview of embodiments of the invention is provided below, followed by a more detailed description with reference to the drawings.